[INFO] cloning repository https://github.com/thehalleyyoung/algo-collusion-certifier
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thehalleyyoung/algo-collusion-certifier" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aa10cb2a53c62611ee4264f620b7216797b12033
[INFO] checking thehalleyyoung/algo-collusion-certifier against master#1fe72d35998dea48aeecaf7fc07783b0b553f24f for pr-154992-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthehalleyyoung%2Falgo-collusion-certifier" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  22% (1513/6850)
Updating files:  23% (1576/6850)
Updating files:  23% (1595/6850)
Updating files:  24% (1644/6850)
Updating files:  25% (1713/6850)
Updating files:  26% (1781/6850)
Updating files:  27% (1850/6850)
Updating files:  28% (1918/6850)
Updating files:  29% (1987/6850)
Updating files:  29% (1993/6850)
Updating files:  29% (2042/6850)
Updating files:  30% (2055/6850)
Updating files:  31% (2124/6850)
Updating files:  32% (2192/6850)
Updating files:  33% (2261/6850)
Updating files:  34% (2329/6850)
Updating files:  35% (2398/6850)
Updating files:  36% (2466/6850)
Updating files:  37% (2535/6850)
Updating files:  38% (2603/6850)
Updating files:  39% (2672/6850)
Updating files:  40% (2740/6850)
Updating files:  41% (2809/6850)
Updating files:  42% (2877/6850)
Updating files:  43% (2946/6850)
Updating files:  44% (3014/6850)
Updating files:  45% (3083/6850)
Updating files:  46% (3151/6850)
Updating files:  46% (3172/6850)
Updating files:  47% (3220/6850)
Updating files:  48% (3288/6850)
Updating files:  49% (3357/6850)
Updating files:  50% (3425/6850)
Updating files:  51% (3494/6850)
Updating files:  52% (3562/6850)
Updating files:  53% (3631/6850)
Updating files:  54% (3699/6850)
Updating files:  55% (3768/6850)
Updating files:  55% (3772/6850)
Updating files:  56% (3836/6850)
Updating files:  56% (3844/6850)
Updating files:  56% (3885/6850)
Updating files:  57% (3905/6850)
Updating files:  58% (3973/6850)
Updating files:  59% (4042/6850)
Updating files:  60% (4110/6850)
Updating files:  61% (4179/6850)
Updating files:  62% (4247/6850)
Updating files:  63% (4316/6850)
Updating files:  64% (4384/6850)
Updating files:  65% (4453/6850)
Updating files:  66% (4521/6850)
Updating files:  67% (4590/6850)
Updating files:  68% (4658/6850)
Updating files:  69% (4727/6850)
Updating files:  70% (4795/6850)
Updating files:  71% (4864/6850)
Updating files:  71% (4894/6850)
Updating files:  72% (4932/6850)
Updating files:  73% (5001/6850)
Updating files:  74% (5069/6850)
Updating files:  75% (5138/6850)
Updating files:  76% (5206/6850)
Updating files:  77% (5275/6850)
Updating files:  78% (5343/6850)
Updating files:  79% (5412/6850)
Updating files:  80% (5480/6850)
Updating files:  81% (5549/6850)
Updating files:  82% (5617/6850)
Updating files:  82% (5669/6850)
Updating files:  83% (5686/6850)
Updating files:  84% (5754/6850)
Updating files:  85% (5823/6850)
Updating files:  86% (5891/6850)
Updating files:  87% (5960/6850)
Updating files:  88% (6028/6850)
Updating files:  89% (6097/6850)
Updating files:  90% (6165/6850)
Updating files:  91% (6234/6850)
Updating files:  92% (6302/6850)
Updating files:  93% (6371/6850)
Updating files:  94% (6439/6850)
Updating files:  95% (6508/6850)
Updating files:  96% (6576/6850)
Updating files:  97% (6645/6850)
Updating files:  97% (6662/6850)
Updating files:  98% (6713/6850)
Updating files:  98% (6737/6850)
Updating files:  99% (6782/6850)
Updating files: 100% (6850/6850)
Updating files: 100% (6850/6850), done.
[INFO] started tweaking git repo https://github.com/thehalleyyoung/algo-collusion-certifier
[INFO] finished tweaking git repo https://github.com/thehalleyyoung/algo-collusion-certifier
[INFO] tweaked toml for git repo https://github.com/thehalleyyoung/algo-collusion-certifier written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thehalleyyoung/algo-collusion-certifier on toolchain 1fe72d35998dea48aeecaf7fc07783b0b553f24f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thehalleyyoung/algo-collusion-certifier already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nalgebra-macros v0.1.0
[INFO] [stderr]   Downloaded simba v0.6.0
[INFO] [stderr]   Downloaded simba v0.8.1
[INFO] [stderr]   Downloaded statrs v0.16.1
[INFO] [stderr]   Downloaded nalgebra v0.32.6
[INFO] [stderr]   Downloaded nalgebra v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f8a235d3ab5141709aaecd57463c47e8f4ebd46a581ea3b29461cee3645c504d
[INFO] running `Command { std: "docker" "start" "-a" "f8a235d3ab5141709aaecd57463c47e8f4ebd46a581ea3b29461cee3645c504d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f8a235d3ab5141709aaecd57463c47e8f4ebd46a581ea3b29461cee3645c504d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8a235d3ab5141709aaecd57463c47e8f4ebd46a581ea3b29461cee3645c504d", kill_on_drop: false }`
[INFO] [stdout] f8a235d3ab5141709aaecd57463c47e8f4ebd46a581ea3b29461cee3645c504d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1fe72d35998dea48aeecaf7fc07783b0b553f24f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fcf974fdeb4b8a154a3bd9a96e751b195964af292ef7db0f5de777db0240b3c8
[INFO] running `Command { std: "docker" "start" "-a" "fcf974fdeb4b8a154a3bd9a96e751b195964af292ef7db0f5de777db0240b3c8", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking ordered-float v4.6.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking simba v0.6.0
[INFO] [stderr]     Checking simba v0.8.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking nalgebra v0.32.6
[INFO] [stderr]     Checking nalgebra v0.29.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking shared-types v0.1.0 (/opt/rustwide/workdir/implementation/crates/shared-types)
[INFO] [stdout] warning: unused import: `crate::statistics::TestStatistic`
[INFO] [stdout]    --> implementation/crates/shared-types/src/evidence.rs:443:9
[INFO] [stdout]     |
[INFO] [stdout] 443 |     use crate::statistics::TestStatistic;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Decisive` should have an upper case name
[INFO] [stdout]    --> implementation/crates/shared-types/src/evidence.rs:150:15
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub const Decisive: EvidenceStrength = EvidenceStrength::Definitive;
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `DECISIVE`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer0` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1031:15
[INFO] [stdout]      |
[INFO] [stdout] 1031 |     pub const Layer0: OracleAccessLevel = OracleAccessLevel::Layer0Passive;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer1` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1032:15
[INFO] [stdout]      |
[INFO] [stdout] 1032 |     pub const Layer1: OracleAccessLevel = OracleAccessLevel::Layer1Checkpoint;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer2` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1033:15
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub const Layer2: OracleAccessLevel = OracleAccessLevel::Layer2FullRewind;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Decisive` should have an upper case name
[INFO] [stdout]    --> implementation/crates/shared-types/src/evidence.rs:150:15
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub const Decisive: EvidenceStrength = EvidenceStrength::Definitive;
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `DECISIVE`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer0` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1031:15
[INFO] [stdout]      |
[INFO] [stdout] 1031 |     pub const Layer0: OracleAccessLevel = OracleAccessLevel::Layer0Passive;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer1` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1032:15
[INFO] [stdout]      |
[INFO] [stdout] 1032 |     pub const Layer1: OracleAccessLevel = OracleAccessLevel::Layer1Checkpoint;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `Layer2` should have an upper case name
[INFO] [stdout]     --> implementation/crates/shared-types/src/types.rs:1033:15
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub const Layer2: OracleAccessLevel = OracleAccessLevel::Layer2FullRewind;
[INFO] [stdout]      |               ^^^^^^ help: convert the identifier to upper case: `LAYER2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking game-theory v0.1.0 (/opt/rustwide/workdir/implementation/crates/game-theory)
[INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat`
[INFO] [stdout]  --> implementation/crates/game-theory/src/automaton.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ordered_float::OrderedFloat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> implementation/crates/game-theory/src/automaton.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat`
[INFO] [stdout]  --> implementation/crates/game-theory/src/equilibrium.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ordered_float::OrderedFloat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> implementation/crates/game-theory/src/equilibrium.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> implementation/crates/game-theory/src/folk_theorem.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> implementation/crates/game-theory/src/learning.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NashEquilibrium`
[INFO] [stdout]   --> implementation/crates/game-theory/src/repeated_game.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::equilibrium::{NashEquilibrium, PayoffMatrix, BertrandNashSolver, CournotNashSolver};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FeasiblePayoffSet`, `MinimaxComputation`, and `PunishmentStrategy`
[INFO] [stdout]   --> implementation/crates/game-theory/src/repeated_game.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::folk_theorem::{FeasiblePayoffSet, MinimaxComputation, PunishmentStrategy};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AutomatonState`
[INFO] [stdout]  --> implementation/crates/game-theory/src/strategies.rs:6:95
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::automaton::{AutomatonBuilder, DiscretizedPrice, FiniteStateStrategy, MealyMachine, AutomatonState};
[INFO] [stdout]   |                                                                                               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> implementation/crates/game-theory/src/strategies.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat`
[INFO] [stdout]  --> implementation/crates/game-theory/src/automaton.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ordered_float::OrderedFloat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> implementation/crates/game-theory/src/automaton.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_float::OrderedFloat`
[INFO] [stdout]  --> implementation/crates/game-theory/src/equilibrium.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ordered_float::OrderedFloat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> implementation/crates/game-theory/src/equilibrium.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> implementation/crates/game-theory/src/folk_theorem.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> implementation/crates/game-theory/src/learning.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NashEquilibrium`
[INFO] [stdout]   --> implementation/crates/game-theory/src/repeated_game.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::equilibrium::{NashEquilibrium, PayoffMatrix, BertrandNashSolver, CournotNashSolver};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FeasiblePayoffSet`, `MinimaxComputation`, and `PunishmentStrategy`
[INFO] [stdout]   --> implementation/crates/game-theory/src/repeated_game.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::folk_theorem::{FeasiblePayoffSet, MinimaxComputation, PunishmentStrategy};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AlwaysDefect`, `GrimTriggerStrategy`, and `TitForTatStrategy`
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:760:29
[INFO] [stdout]     |
[INFO] [stdout] 760 |     use crate::strategies::{GrimTriggerStrategy, TitForTatStrategy, AlwaysDefect};
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AutomatonState`
[INFO] [stdout]  --> implementation/crates/game-theory/src/strategies.rs:6:95
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::automaton::{AutomatonBuilder, DiscretizedPrice, FiniteStateStrategy, MealyMachine, AutomatonState};
[INFO] [stdout]   |                                                                                               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> implementation/crates/game-theory/src/strategies.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking statrs v0.16.1
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:884:57
[INFO] [stdout]     |
[INFO] [stdout] 884 |         let mm = MinimaxComputation::from_payoff_matrix(&payoffs);
[INFO] [stdout]     |                  -------------------------------------- ^^^^^^^^ expected `&[Vec<Vec<f64>>]`, found `&Vec<Vec<{float}>>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[Vec<Vec<f64>>]`
[INFO] [stdout]                found reference `&Vec<Vec<{float}>>`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 |     pub fn from_payoff_matrix(payoffs: &[Vec<Vec<f64>>]) -> Vec<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ -------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking market-sim v0.1.0 (/opt/rustwide/workdir/implementation/crates/market-sim)
[INFO] [stdout] warning: unused variable: `inp_val`
[INFO] [stdout]    --> implementation/crates/game-theory/src/automaton.rs:719:29
[INFO] [stdout]     |
[INFO] [stdout] 719 |                         let inp_val = inp as u32;
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inp_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_agents`
[INFO] [stdout]    --> implementation/crates/game-theory/src/c3_validator.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     num_agents: usize,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_agents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> implementation/crates/game-theory/src/equilibrium.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let n = support.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inp_val`
[INFO] [stdout]    --> implementation/crates/game-theory/src/automaton.rs:719:29
[INFO] [stdout]     |
[INFO] [stdout] 719 |                         let inp_val = inp as u32;
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inp_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prices`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let prices: Vec<f64> = config.marginal_costs.iter().map(|c| c.0).collect();
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iteration`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         for iteration in 0..self.max_iterations {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:636:21
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let n = prices.len();
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partition`
[INFO] [stdout]     --> implementation/crates/game-theory/src/automaton.rs:1085:21
[INFO] [stdout]      |
[INFO] [stdout] 1085 |         let (min_m, partition) = AutomatonMinimizer::minimize(&m);
[INFO] [stdout]      |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:225:21
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 let n = config.num_players;
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_agents`
[INFO] [stdout]    --> implementation/crates/game-theory/src/c3_validator.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     num_agents: usize,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_agents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payoff_collude`
[INFO] [stdout]    --> implementation/crates/game-theory/src/c3_validator.rs:347:13
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let payoff_collude = compute_payoff_for_agent(0, 2, 4, &profile_collude);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payoff_collude`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payoff_deviate`
[INFO] [stdout]    --> implementation/crates/game-theory/src/c3_validator.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let payoff_deviate = compute_payoff_for_agent(0, 2, 4, &profile_deviate);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payoff_deviate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `avg_payoffs`
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:513:9
[INFO] [stdout]     |
[INFO] [stdout] 513 |     let avg_payoffs: Vec<f64> = (0..n).map(|i| {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_payoffs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> implementation/crates/game-theory/src/equilibrium.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let n = support.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prices`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let prices: Vec<f64> = config.marginal_costs.iter().map(|c| c.0).collect();
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iteration`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         for iteration in 0..self.max_iterations {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iteration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:636:21
[INFO] [stdout]     |
[INFO] [stdout] 636 |                 let n = prices.len();
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]    --> implementation/crates/game-theory/src/equilibrium.rs:994:23
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let (reduced, remaining) = DominanceElimination::eliminate(&game);
[INFO] [stdout]     |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_0`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let var_0: f64 = dist_0.iter().enumerate().map(|(a, &p)| (a as f64 - mean_0).powi(2) * p).sum();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_1`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |         let var_1: f64 = dist_1.iter().enumerate().map(|(a, &p)| (a as f64 - mean_1).powi(2) * p).sum();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_actions`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:508:9
[INFO] [stdout]     |
[INFO] [stdout] 508 |         num_actions: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_actions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `others_avg`
[INFO] [stdout]    --> implementation/crates/game-theory/src/payoff.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let others_avg: f64 = if n > 1 {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_others_avg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut pm = PayoffMatrix::new(vec![num_levels; n]);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_action`
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (best_action, best_payoff) = self.payoffs.best_response(player, &collusive_actions);
[INFO] [stdout]     |              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:225:21
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 let n = config.num_players;
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `avg_payoffs`
[INFO] [stdout]    --> implementation/crates/game-theory/src/folk_theorem.rs:513:9
[INFO] [stdout]     |
[INFO] [stdout] 513 |     let avg_payoffs: Vec<f64> = (0..n).map(|i| {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_avg_payoffs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `round`
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:684:13
[INFO] [stdout]     |
[INFO] [stdout] 684 |         for round in 0..t {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_round`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_0`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let var_0: f64 = dist_0.iter().enumerate().map(|(a, &p)| (a as f64 - mean_0).powi(2) * p).sum();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_1`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |         let var_1: f64 = dist_1.iter().enumerate().map(|(a, &p)| (a as f64 - mean_1).powi(2) * p).sum();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_var_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_actions`
[INFO] [stdout]    --> implementation/crates/game-theory/src/learning.rs:508:9
[INFO] [stdout]     |
[INFO] [stdout] 508 |         num_actions: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_actions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `others_avg`
[INFO] [stdout]    --> implementation/crates/game-theory/src/payoff.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let others_avg: f64 = if n > 1 {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_others_avg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut pm = PayoffMatrix::new(vec![num_levels; n]);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_action`
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (best_action, best_payoff) = self.payoffs.best_response(player, &collusive_actions);
[INFO] [stdout]     |              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `round`
[INFO] [stdout]    --> implementation/crates/game-theory/src/repeated_game.rs:684:13
[INFO] [stdout]     |
[INFO] [stdout] 684 |         for round in 0..t {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_round`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `game-theory` (lib test) due to 1 previous error; 30 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `make_linear_demand_box` is never used
[INFO] [stdout]    --> implementation/crates/market-sim/src/bertrand.rs:633:8
[INFO] [stdout]     |
[INFO] [stdout] 633 |     fn make_linear_demand_box(a: f64, b: f64, c: f64, n: usize) -> Box<dyn DemandFunction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fcf974fdeb4b8a154a3bd9a96e751b195964af292ef7db0f5de777db0240b3c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fcf974fdeb4b8a154a3bd9a96e751b195964af292ef7db0f5de777db0240b3c8", kill_on_drop: false }`
[INFO] [stdout] fcf974fdeb4b8a154a3bd9a96e751b195964af292ef7db0f5de777db0240b3c8
